export default class Utils {
	/*
	 * 通过时间戳获取日期。
	 * @param timestamp 时间戳
	 * @param format 日期格式
	 * @return 格式化后的日期
	 */
	static getDateByTimestamp(timestamp, format) {
		const WEEK = ['日','一','二','三','四','五','六'];  
		let date = timestamp ? new Date(timestamp * 1000) : new Date();
		let year = date.getFullYear();
		let month = date.getMonth() + 1;
		let week = date.getDay();
		let day = date.getDate();
		let hour = date.getHours();
		let minute = date.getMinutes();
		let second = date.getSeconds();

		format = format ? format : 'YYYY-MM-DD';
		format = format.replace(/yyyy|YYYY/, year);
		format = format.replace(/yy|YY/, (year % 100) > 9 ? (year % 100).toString() : '0' + (year % 100));
		format = format.replace(/MM/, month > 9 ? month.toString() : '0' + month);
		format = format.replace(/M/, month);
		format = format.replace(/w|W/, WEEK[week]);
		format = format.replace(/dd|DD/, day > 9 ? day.toString() : '0' + day);
		format = format.replace(/d|D/, day);
		format = format.replace(/hh|HH/, hour > 9 ? hour.toString() : '0' + hour);
		format = format.replace(/h|H/, hour);
		format = format.replace(/mm/, minute > 9 ? minute.toString() : '0' + minute);
		format = format.replace(/m/, minute);
		format = format.replace(/ss|SS/, second > 9 ? second.toString() : '0' + second);
		format = format.replace(/s|S/, second);

		return format;
	}

	/*
	 * 通过id获取性别。
	 *
	 * @param id 性别id
	 */
	static getSexById(id) {
		const SEX = ["未设置","女","男"];

		return SEX[id];
	}
	/*
	 * 通过id获取性别。
	 *
	 * @param id 性别id
	 */
	static getStateById(id) {
		const  state = ["未审核","已通过","已拒绝"];

		return state[id];
	}

	/*
	 * 通过出生年份获取年龄。
	 *
	 * @param year 出生年份
	 * @return 年龄
	 */
	static getAgeByYear(year) {
		let date = new Date();
		let currentYear = date.getFullYear();
		let age = currentYear - parseInt(year);

		return age;
	}

	/*
	 * 删除数组中某个值的元素。
	 *
	 * @param array 数组
	 * @param value 需要删除的值
	 */
	static arrayRemoveByValue(array, value) {
		for (let i = 0; i < array.length; i++) {
			if (array[i] === value) {
				array.splice(i, 1);
				break;
			}
		}
	}

	/*
	 * 获取责任区工作计划编号。
	 * @param areaId 责任区id
	 * @param year 年份
	 * @param planId 责任区工作计划id
	 * @return 责任区工作计划编号
	 */
	static getAreaPlanId(areaId, year, planId) {
		return `S${areaId}-${year}JH${planId}`;
	}

	/*
	 * 获取个人工作计划编号。
	 * @param year 年份
	 * @param id 个人工作计划id
	 * @return 个人工作计划编号
	 */
	static getPersonalPlanId(year, id) {
		return `S-${year}JH${id}`;
	}

	/*
	 * 获取随访检查记录编号。
	 * @param year 年份
	 * @param id 随访检查记录id
	 * @return 随访检查记录编号
	 */
	static getVisitId(year, id) {
		return `S-${year}JL${id}`;
	}

	/*
	 * 获取督学工作情况反馈编号。
	 * @param year 年份
	 * @param id 督学工作情况反馈id
	 * @return 督学工作情况反馈编号
	 */
	static getFeedbackId(year, id) {
		return `S-${year}FK${id}`;
	}

	/*
	 * 获取整改编号。
	 * @param year 年份
	 * @param id 整改通知id
	 * @return 整改通知编号
	 */
	static getNoticeId(year, id) {
		return `S-${year}TZ${id}`;
	}

	/*
	 * 获取整改报告编号。
	 * @param year 年份
	 * @param id 整改报告id
	 * @return 整改报告编号
	 */
	static getReportId(year, id) {
		return `S-${year}BG${id}`;
	}

	/*
	 * 获取整改情况编号。
	 * @param year 年份
	 * @param id 整改情况id
	 * @return 整改情况编号
	 */
	static getSituationId(year, id) {
		return `S-${year}TB${id}`;
	}

	/*
	 * 获取月度工作情况汇报编号。
	 * @param year 年份
	 * @param id 月度工作情况汇报id
	 * @return 月度工作情况汇报编号
	 */
	static getMonthId(year, id) {
		return `S-${year}HBM${id}`;
	}

	/*
	 * 获取学期工作情况编号。
	 * @param year 年份
	 * @param id 学期工作情况id
	 * @return 学期工作情况编号
	 */
	static getTermId(year, id) {
		return `S-${year}HBT${id}`;
	}

	/*
	 * 获取备选库督学编号。
	 * @param id 备选库督学id
	 * @return 备选库督学编号
	 */
	static getCandidateId(id) {
		return `S-BX-${id}`;
	}

	/*
	 * 获取督学库督学编号。
	 * @param id 督学库督学id
	 * @return 督学库督学编号
	 */
	static getOfficialId(id) {
		return `S-DX-${id}`;
	}
	static split(value){
	return	value.split('-')[1]
	}
}
